/*
 * ordering_food 点餐处理 Dao层增删改查
*/
const baseDao = require('./BaseDao');

module.exports = {
    /**
     * 新增一条记录
     * @param food_table_id              餐桌id
     * @param food_id                    菜品id
     * @param food_count                 单个菜品的个数
     * @param food_count_money           单个菜品的小计价格
     * @param ordering_food_account      单个菜品的结账状态，因一个餐桌会陆续有客户下单买单，所以根据状态判断当前需要结账的内容，已结账内容作为历史保留(0为未结账，1为已结账)
     * @returns                          返回操作的结果
     */
    insertOrderingFood(food_table_id, food_id, food_count, food_count_money, ordering_food_account){
        // 新增点餐时，默认结账状态为0
        return baseDao.handleData('insert into ordering_food(food_table_id, food_id, food_count, food_count_money, ordering_food_account) values(?,?,?,?,?)',
            [food_table_id, food_id, food_count, food_count_money, ordering_food_account]);
    },
    /**
     * 根据传递的用户id删除某一条记录
     * @param food_id                     菜品id
     * @param food_table_id               餐桌id
     * @returns                           返回操作的结果
     */
    deleteOrderingFoodById(food_id, food_table_id){
        return baseDao.handleData('delete from ordering_food where food_id=? and food_table_id=?',
            [food_id, food_table_id]);
    },
    /**
     * 根据主键id更新数据(结账时，只更新结账状态)
     * @param food_table_id                餐桌id
     * @param food_id                      菜品id
     * @param food_count                   单个菜品个数
     * @param food_count_money             单个菜品小计价格
     * @returns                            返回操作的结果
     */
    updateOrderingFoodById(food_table_id, food_id, food_count, food_count_money){
        // 暂时不更新图片
        return baseDao.handleData('update ordering_food set food_count=?, food_count_money=? where food_table_id=? and food_id=?',
            [food_count, food_count_money, food_table_id, food_id]);
    },
    /**
     * 查询所有的数据
     * @returns            返回操作的结果
     */
    selectAllOrderingFood(){
        return baseDao.handleData('select * from ordering_food\n' +
            'left join food f on ordering_food.food_id = f.id\n' +
            'left join food_table ft on ordering_food.food_table_id = ft.id', null);
    },
    /**
     * 根据指定的餐桌id和菜品id查询记录
     * @param food_table_id         餐桌id
     * @param food_id               菜品id
     * @returns                     返回操作的结果
     */
    selectAllOrderingFoodByDoubleId(food_table_id, food_id){
        return baseDao.handleData('select id from ordering_food where food_table_id=? and food_id=?',
            [food_table_id, food_id]);
    },
    /**
     * 根据用户传递模糊名称进行统计个数
     * @param ordering_food_number        模糊名称
     * @returns                           返回操作的结果
     */
    selectOrderingFoodCount(ordering_food_number){
        return baseDao.handleData('select count(*) from ordering_food where ordering_food_number like ?',
            ["%" + ordering_food_number + "%"]);
    },
    /**
     * 基于一个餐桌号查询一条记录
     * @param food_table_number          餐桌号
     * @returns                          返回操作的结果
     */
    selectOrderingFoodById(food_table_number){
        return baseDao.handleData('select * from ordering_food of01\n' +
            'left join food f on of01.food_id = f.id\n' +
            'left join food_table ft on of01.food_table_id = ft.id\n' +
            'where ft.food_table_number=?',
            [food_table_number]);
    },
    /**
     * 基于分页查询每页数据 每页显示10条
     * @param startIndex          起始下标
     * @returns                   返回操作的结果
     */
    selectOrderingFoodByLimit(startIndex){
        return baseDao.handleData('select id, food_table_id, food_id, food_count, food_count_money, ordering_food_account from ordering_food limit ?,10',
            [startIndex]);
    }
};
